Skip to content

Finalize w3id IRI scheme: collapse version-IRI doubling (#436), declare w3id canonical (#435)#462

Merged
turbomam merged 1 commit into
mainfrom
iri-finalize-435-436
Jun 2, 2026
Merged

Finalize w3id IRI scheme: collapse version-IRI doubling (#436), declare w3id canonical (#435)#462
turbomam merged 1 commit into
mainfrom
iri-finalize-435-436

Conversation

@turbomam

@turbomam turbomam commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

Finishes the IRI-scheme work from #458 so the BioPortal release is clean.

#436 (version-IRI doubling). metpo-odk.yaml already set uribase: https://w3id.org, but the committed generated src/ontology/Makefile was never refreshed and still carried URIBASE=https://w3id.org/metpo plus a hardcoded ONTBASE=https://w3id.org/metpo/metpo. That produced …/metpo/metpo/releases/… version IRIs. Aligned the Makefile to the odk.yaml value and rebuilt. Now: version IRI https://w3id.org/metpo/releases/2026-06-02/metpo.owl, products https://w3id.org/metpo/metpo-{base,full}.owl, main ontology IRI https://w3id.org/metpo.owl (standard registry-root layout). No metpo/metpo/ left.

#435 (obolibrary PURL 404). Adopts option 2: README now declares https://w3id.org/metpo/ the only canonical resolution base and explicitly tells users not to use purl.obolibrary.org/obo/METPO_<id> (those 404 because METPO isn't OBO-registered). OBO registration (option 1) is out of scope.

Why a direct Makefile edit rather than make update_repo: URIBASE/ONTBASE are the documented "can be overwritten" config values, odk.yaml is already correct, and this keeps the PR a reviewable 2-line config change plus the rebuild instead of a full ODK scaffold regeneration. A future update_repo regenerates the same values.

Does not touch #437 (a BioPortal submission-form setting) or #450 (external w3id.org .htaccess). Term IRIs unchanged.

…#435)

#436: the generated src/ontology/Makefile still had the pre-#458 URIBASE
(https://w3id.org/metpo) and a hardcoded doubled ONTBASE
(https://w3id.org/metpo/metpo), so version and product IRIs came out as
https://w3id.org/metpo/metpo/releases/... even though metpo-odk.yaml already
set uribase: https://w3id.org. Aligned the generated Makefile to odk.yaml
(URIBASE=https://w3id.org, ONTBASE=https://w3id.org/metpo) and rebuilt. Version
IRIs are now single-metpo (https://w3id.org/metpo/releases/2026-06-02/metpo.owl),
products at https://w3id.org/metpo/metpo-{base,full}.owl, main ontology IRI
https://w3id.org/metpo.owl. Zero metpo/metpo/ doubling remains.

#435: documented https://w3id.org/metpo/ as the only canonical resolution base
in the README and explicitly steered users away from
http://purl.obolibrary.org/obo/METPO_<id> PURLs, which 404 because METPO is not
registered in the OBO Foundry. (Adopts option 2 from #435; option 1, OBO
registration, is out of scope.)

Rebuilds all release artifacts. Term IRIs unchanged (https://w3id.org/metpo/<id>).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings June 2, 2026 01:49
@turbomam turbomam merged commit 7002094 into main Jun 2, 2026
9 checks passed
@turbomam turbomam deleted the iri-finalize-435-436 branch June 2, 2026 01:51

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR finalizes the METPO IRI scheme to consistently use w3id.org, removing the previous .../metpo/metpo/... path doubling in version IRIs and documenting w3id.org as the canonical resolution approach (vs. non-working OBO Library PURLs).

Changes:

  • Update ODK-generated src/ontology/Makefile URIBASE/ONTBASE so ontology IRIs and version IRIs are built under the intended w3id.org layout.
  • Regenerate release artefacts (metpo.owl / metpo-full.* / metpo-base.* / JSON/OBO) so ontology + version IRIs match the updated scheme.
  • Add README guidance on canonical term IRIs under https://w3id.org/metpo/ and warn against purl.obolibrary.org PURLs.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
src/ontology/Makefile Switches URIBASE/ONTBASE to align generated IRIs with w3id.org scheme (impacts release IRI construction).
src/ontology/components/metpo_sheet.owl Updates component ontology IRI/versionIRI to remove metpo/metpo doubling.
README.md Documents canonical METPO term IRIs and discourages obolibrary PURLs.
metpo.owl Updates ontology IRI + versionIRI to new w3id.org layout (no doubled path).
metpo.obo Updates ontology: and data-version: IRIs to match updated release IRIs.
metpo.json Updates graph id and version IRIs to match updated release IRIs.
metpo-full.owl Updates ontology IRI + versionIRI to remove metpo/metpo doubling.
metpo-full.obo Updates ontology: and data-version: IRIs to match updated release IRIs.
metpo-full.json Updates graph id and version IRIs to match updated release IRIs.
metpo-base.owl Updates ontology IRI + versionIRI to remove metpo/metpo doubling.
metpo-base.obo Updates ontology: and data-version: IRIs to match updated release IRIs.
metpo-base.json Updates graph id and version IRIs to match updated release IRIs.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread README.md
- The ontology prefix `METPO:` expands to `https://w3id.org/metpo/`
- Ontology document IRI: `https://w3id.org/metpo.owl` (release products and version IRIs live under `https://w3id.org/metpo/`, e.g. `https://w3id.org/metpo/releases/<date>/metpo.owl`)

**Do not use `http://purl.obolibrary.org/obo/METPO_<id>`.** METPO is not registered in the OBO Foundry, so those PURLs do not resolve (HTTP 404) and are not METPO identifiers. `https://w3id.org/` is the only canonical resolution base for METPO. (Term-IRI resolution behavior is still being finalized; see issues #450 and #435.)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed in #464 (and refined in #469): the README now distinguishes the resolver host (w3id.org) from the canonical identifier namespace (https://w3id.org/metpo/).

Comment thread src/ontology/Makefile
Comment on lines 21 to +24
OBOBASE= http://purl.obolibrary.org/obo
URIBASE= https://w3id.org/metpo
URIBASE= https://w3id.org
ONT= metpo
ONTBASE= https://w3id.org/metpo/metpo
ONTBASE= https://w3id.org/metpo

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct, and this was the root cause. Fixed in #464: the base pipeline now uses --base-iri $(URIBASE)/metpo so it matches the term IRIs. (The broader URIBASE/IRI-scheme reconciliation is tracked in #465.)

Comment thread metpo-base.owl
Comment on lines +12 to 16
<owl:Ontology rdf:about="https://w3id.org/metpo/metpo-base.owl">
<owl:versionIRI rdf:resource="https://w3id.org/metpo/releases/2026-06-02/metpo-base.owl"/>
<dce:type rdf:resource="http://purl.obolibrary.org/obo/IAO_8000001"/>
<dcterms:contributor rdf:resource="https://orcid.org/0000-0001-9076-6066"/>
<dcterms:creator>METPO Development Team</dcterms:creator>

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Confirmed and fixed in #464: metpo-base.owl now carries all 1454 METPO classes (the base-IRI filter no longer strips them).

Comment thread metpo-base.obo
Comment on lines 1 to +5
format-version: 1.2
data-version: https://w3id.org/metpo/metpo/releases/2026-06-02/metpo-base.owl
data-version: https://w3id.org/metpo/releases/2026-06-02/metpo-base.owl
idspace: dce http://purl.org/dc/elements/1.1/
idspace: dcterms http://purl.org/dc/terms/
ontology: https://w3id.org/metpo/metpo/metpo-base.owl
ontology: https://w3id.org/metpo/metpo-base.owl

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in #464: metpo-base.obo now contains the METPO [Term] frames after the base-IRI filter fix + rebuild.

Comment thread metpo-base.json
Comment on lines 1 to 5
{
"graphs" : [ {
"id" : "https://w3id.org/metpo/metpo/metpo-base.json",
"id" : "https://w3id.org/metpo/metpo-base.json",
"meta" : {
"basicPropertyValues" : [ {

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in #464: metpo-base.json now contains the METPO class/property nodes after the base-IRI fix + rebuild.

turbomam added a commit that referenced this pull request Jun 2, 2026
…#463) (#464)

The -base release products shipped with zero METPO terms (verified empty in the
2026-05-19 release and pre-#462 main; full artifacts unaffected). Root cause: the
base pipeline used `remove --base-iri $(URIBASE)/METPO --axioms external`, but
METPO term IRIs are https://w3id.org/metpo/<id> (lowercase, slash), so the filter
never matched and every METPO axiom was stripped. The QC report rules already use
the correct $(URIBASE)/metpo. Changed line 542 to match; metpo-base.* now carries
all 1454 METPO classes (imported externals still excluded).

Also reworded the README IRI paragraph (Copilot review on #462) to distinguish the
resolver host (w3id.org) from the canonical identifier namespace
(https://w3id.org/metpo/).

Pre-existing defect, not introduced by #462. Fixes #463.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants